package edu.ynu.se.xiecheng.achitectureclass.service;

import edu.ynu.se.xiecheng.achitectureclass.entity.Order;
import com.baomidou.mybatisplus.extension.service.IService;
import edu.ynu.se.xiecheng.achitectureclass.entity.vo.OrderVO;
import edu.ynu.se.xiecheng.achitectureclass.entity.vo.Result;

import java.util.List;

/**
 * @author laruui
 * @since 2023-12-07
 */
public interface OrderService extends IService<Order> {

    /**
     * 订单分页
     *
     * @param current 当前页码
     * @param size    页面数据量
     * @param userId  用户Id
     * @return json
     */
    Result pageOrder(int current, int size, String userId);

    /**
     * 新增订单
     *
     * @param orderVOList 订单列表
     * @return json
     */
    Result addOrder(List<OrderVO> orderVOList, float totalPrice);

    /**
     * 取消订单删除
     *
     * @param sn 订单流水号
     * @return json
     */
    Result removeOrder(String sn);

    /**
     * 支付订单
     *
     * @param sn 流水号
     * @return json
     */
    Result paymentOrder(String sn);


    /**
     * 确认订单支付
     *
     * @param sn 流水号
     * @return json
     */
    Result enterOrder(String sn);

    /**
     * 退款已支付订单
     *
     * @param sn 流水号
     * @return json
     */
    Result returnAmountOrder(String sn);
}
